home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / dbm / ncompat.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  7KB  |  233 lines

  1. /*-
  2.  * Copyright (c) 1991, 1993
  3.  *    The Regents of the University of California.  All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. All advertising materials mentioning features or use of this software
  14.  *    must display the following acknowledgement:
  15.  *    This product includes software developed by the University of
  16.  *    California, Berkeley and its contributors.
  17.  * 4. Neither the name of the University nor the names of its contributors
  18.  *    may be used to endorse or promote products derived from this software
  19.  *    without specific prior written permission.
  20.  *
  21.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31.  * SUCH DAMAGE.
  32.  *
  33.  *    @(#)compat.h    8.13 (Berkeley) 2/21/94
  34.  */
  35.  
  36. #ifndef    _COMPAT_H_
  37. #define    _COMPAT_H_
  38.  
  39. #include <sys/types.h>
  40.  
  41. /*
  42.  * If your system doesn't typedef u_long, u_short, or u_char, change
  43.  * the 0 to a 1.
  44.  */
  45. #if 0
  46. typedef unsigned char    u_char;        /* 4.[34]BSD names. */
  47. typedef unsigned int    u_int;
  48. typedef unsigned long    u_long;
  49. typedef unsigned short    u_short;
  50. #endif
  51.  
  52. /* If your system doesn't typedef size_t, change the 0 to a 1. */
  53. #if 0
  54. typedef unsigned int    size_t;        /* POSIX, 4.[34]BSD names. */
  55. #endif
  56.  
  57. /* If your system doesn't typedef ssize_t, change the 0 to a 1. */
  58. #if 0
  59. typedef    int        ssize_t;    /* POSIX names. */
  60. #endif
  61.  
  62. /*
  63.  * If your system doesn't have the POSIX type for a signal mask,
  64.  * change the 0 to a 1.
  65.  */
  66. #if 0                    /* POSIX 1003.1 signal mask type. */
  67. typedef unsigned int    sigset_t;
  68. #endif
  69.  
  70. /*
  71.  * If your system's vsprintf returns a char *, not an int,
  72.  * change the 0 to a 1.
  73.  */
  74. #if defined (__sun) && !defined(__SVR4) /* SUNOS */
  75. #define    VSPRINTF_CHARSTAR
  76. #endif
  77. /*
  78.  * If you don't have POSIX 1003.1 signals, the signal code surrounding the 
  79.  * temporary file creation is intended to block all of the possible signals
  80.  * long enough to create the file and unlink it.  All of this stuff is
  81.  * intended to use old-style BSD calls to fake POSIX 1003.1 calls.
  82.  */
  83. #ifdef    NO_POSIX_SIGNALS
  84. #define    sigemptyset(set)    (*(set) = 0)
  85. #define    sigfillset(set)        (*(set) = ~(sigset_t)0, 0)
  86. #define    sigaddset(set,signo)    (*(set) |= sigmask(signo), 0)
  87. #define    sigdelset(set,signo)    (*(set) &= ~sigmask(signo), 0)
  88. #define    sigismember(set,signo)    ((*(set) & sigmask(signo)) != 0)
  89.  
  90. #define    SIG_BLOCK    1
  91. #define    SIG_UNBLOCK    2
  92. #define    SIG_SETMASK    3
  93.  
  94. static int __sigtemp;        /* For the use of sigprocmask */
  95.  
  96. /* Repeated test of oset != NULL is to avoid "*0". */
  97. #define    sigprocmask(how, set, oset)                    \
  98.     ((__sigtemp =                            \
  99.     (((how) == SIG_BLOCK) ?                        \
  100.         sigblock(0) | *(set) :                    \
  101.     (((how) == SIG_UNBLOCK) ?                    \
  102.         sigblock(0) & ~(*(set)) :                \
  103.     ((how) == SIG_SETMASK ?                        \
  104.         *(set) : sigblock(0))))),                \
  105.     ((oset) ? (*(oset ? oset : set) = sigsetmask(__sigtemp)) :    \
  106.         sigsetmask(__sigtemp)), 0)
  107. #endif
  108.  
  109. /*
  110.  * If your system doesn't have an include file with the appropriate
  111.  * byte order set, make sure you specify the correct one.
  112.  */
  113. #ifndef BYTE_ORDER
  114. #define    LITTLE_ENDIAN    1234        /* LSB first: i386, vax */
  115. #define    BIG_ENDIAN    4321        /* MSB first: 68000, ibm, net */
  116. #define    BYTE_ORDER    BIG_ENDIAN    /* Set for your system. */
  117. #endif
  118.  
  119. #if defined(SYSV) || defined(SYSTEM5) || defined(__sun)
  120. #define    index(a, b)        strchr(a, b)
  121. #define    rindex(a, b)        strrchr(a, b)
  122. #define    bzero(a, b)        memset(a, 0, b)
  123. #define    bcmp(a, b, n)        memcmp(a, b, n)
  124. #define    bcopy(a, b, n)        memmove(b, a, n)
  125. #endif
  126.  
  127. #if defined(BSD) || defined(BSD4_3)
  128. #define    strchr(a, b)        index(a, b)
  129. #define    strrchr(a, b)        rindex(a, b)
  130. #define    memcmp(a, b, n)        bcmp(a, b, n)
  131. #define    memmove(a, b, n)    bcopy(b, a, n)
  132. #endif
  133.  
  134. /*
  135.  * 32-bit machine.  The db routines are theoretically independent of
  136.  * the size of u_shorts and u_longs, but I don't know that anyone has
  137.  * ever actually tried it.  At a minimum, change the following #define's
  138.  * if you are trying to compile on a different type of system.
  139.  */
  140. #ifndef USHRT_MAX
  141. #define    USHRT_MAX        0xFFFF
  142. #define    ULONG_MAX        0xFFFFFFFF
  143. #endif
  144.  
  145. #ifndef O_ACCMODE            /* POSIX 1003.1 access mode mask. */
  146. #define    O_ACCMODE    (O_RDONLY|O_WRONLY|O_RDWR)
  147. #endif
  148.  
  149. #ifndef    _POSIX2_RE_DUP_MAX        /* POSIX 1003.2 RE limit. */
  150. #define    _POSIX2_RE_DUP_MAX    255
  151. #endif
  152.  
  153. /*
  154.  * If you can't provide lock values in the open(2) call.  Note, this
  155.  * allows races to happen.
  156.  */
  157. #ifndef O_EXLOCK            /* 4.4BSD extension. */
  158. #define    O_EXLOCK    0
  159. #endif
  160.  
  161. #ifndef O_SHLOCK            /* 4.4BSD extension. */
  162. #define    O_SHLOCK    0
  163. #endif
  164.  
  165. #ifndef EFTYPE
  166. #define    EFTYPE        EINVAL        /* POSIX 1003.1 format errno. */
  167. #endif
  168.  
  169. #ifndef    WCOREDUMP            /* 4.4BSD extension */
  170. #define    WCOREDUMP(a)    0
  171. #endif
  172.  
  173. #ifndef    STDERR_FILENO
  174. #define    STDIN_FILENO    0        /* ANSI C #defines */
  175. #define    STDOUT_FILENO    1
  176. #define    STDERR_FILENO    2
  177. #endif
  178.  
  179. #ifndef SEEK_END
  180. #define    SEEK_SET    0        /* POSIX 1003.1 seek values */
  181. #define    SEEK_CUR    1
  182. #define    SEEK_END    2
  183. #endif
  184.  
  185. #ifndef _POSIX_VDISABLE            /* POSIX 1003.1 disabling char. */
  186. #define    _POSIX_VDISABLE    0        /* Some systems used 0. */
  187. #endif
  188.  
  189. #ifndef    TCSASOFT            /* 4.4BSD extension. */
  190. #define    TCSASOFT    0
  191. #endif
  192.  
  193. #ifndef _POSIX2_RE_DUP_MAX        /* POSIX 1003.2 values. */
  194. #define    _POSIX2_RE_DUP_MAX    255
  195. #endif
  196.  
  197. #ifndef NULL                /* ANSI C #defines NULL everywhere. */
  198. #define    NULL        0
  199. #endif
  200.  
  201. #ifndef    MAX                /* Usually found in <sys/param.h>. */
  202. #define    MAX(_a,_b)    ((_a)<(_b)?(_b):(_a))
  203. #endif
  204. #ifndef    MIN                /* Usually found in <sys/param.h>. */
  205. #define    MIN(_a,_b)    ((_a)<(_b)?(_a):(_b))
  206. #endif
  207.  
  208. /* Default file permissions. */
  209. #ifndef DEFFILEMODE            /* 4.4BSD extension. */
  210. #define    DEFFILEMODE    (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
  211. #endif
  212.  
  213. #ifndef __sun
  214. #ifndef S_ISDIR                /* POSIX 1003.1 file type tests. */
  215. #define    S_ISDIR(m)    ((m & 0170000) == 0040000)    /* directory */
  216. #define    S_ISCHR(m)    ((m & 0170000) == 0020000)    /* char special */
  217. #define    S_ISBLK(m)    ((m & 0170000) == 0060000)    /* block special */
  218. #define    S_ISREG(m)    ((m & 0170000) == 0100000)    /* regular file */
  219. #define    S_ISFIFO(m)    ((m & 0170000) == 0010000)    /* fifo */
  220. #endif
  221. #ifndef S_ISLNK                /* BSD POSIX 1003.1 extensions */
  222. #define    S_ISLNK(m)    ((m & 0170000) == 0120000)    /* symbolic link */
  223. #define    S_ISSOCK(m)    ((m & 0170000) == 0140000)    /* socket */
  224. #endif
  225. #endif /* __sun */
  226.  
  227. /* The type of a va_list. */
  228. #ifndef _BSD_VA_LIST_            /* 4.4BSD #define. */
  229. #define    _BSD_VA_LIST_    char *
  230. #endif
  231.  
  232. #endif /* !_COMPAT_H_ */
  233.